This section is intended to provide a background or context to the invention that is recited in the claims. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.
Many of today's electronic devices, such as computers, utilize processors that must access memory in order to operate. Fast and efficient access to that memory has thus become an important consideration in the design of those electronic devices. Static random access memory (SRAM) is one type of semiconductor memory, where the memory retains its contents as long as power remains applied. Dynamic random access memory (DRAM) is a type of random access memory that stores each bit of data in a separate capacitor. Because capacitors are not ideal elements, the information eventually fades unless the capacitor charge is periodically refreshed. The refresh rate is specified by manufacturers to be a certain number of milliseconds, in accordance with recommendations set by the Joint Electron Device Engineering Council (JEDEC), a semiconductor engineering standardization body. It is this refresh requirement that makes DRAM dynamic, and more complicated due to the refresh logic needed, as opposed to SRAM. However, DRAM has an advantage over SRAM in that it is structurally more simple. Whereas six transistors are needed per bit in SRAM, only one transistor and a capacitor are required per bit in DRAM. This allows DRAM to reach very high density.
DRAM is usually arranged in a square array of one capacitor and transistor per cell, where modern DRAM can be comprised of thousands of cells in length/width. In a read operation, the row of a selected cell is activated, turning on the transistors and connecting the capacitors of that row to the sense lines. The sense lines lead to the sense amplifiers, which discriminate between a stored 0 or 1. The amplified value from the appropriate column is then selected and connected to the output. At the end of a read cycle, the row values must be restored to the capacitors which were depleted during the read. This write is done by activating the row and connecting the values to be written to the sense lines, which charges the capacitors to the desired values. During a write to a particular cell, the entire row is read out, one value is changed, and then the entire row is written back in.
There are currently various types of DRAM. Some types of DRAM utilize an asynchronous interface, meaning that the DRAM reacts immediately to changes detected in its control inputs. Synchronous DRAM (SDRAM) on the other hand, has a synchronous interface, meaning that the SDRAM waits for a clock signal before responding to its control inputs. Therefore the SDRAM is synchronized with, for example, a computer's system bus, and thus with a controlling processor. The clock is used to drive an internal finite state machine that can pipeline incoming commands. This allows a chip accessing the SDRAM to have a more complex pattern of operation than DRAM.
Pipelining refers to a chip's operation, where that chip can accept a new command before it has finished processing the previous one. In a pipelined write, the write command can be immediately followed by another command without waiting for the data to be written to the memory array of the SDRAM. In a pipelined read, the requested data appears a fixed number of clock pulses after the read command, and it is not necessary to wait for the data to appear before sending the next command. This creates a delay called latency, and is an important consideration when utilizing SDRAM.
Oftentimes, a plurality of different processors and controllers in one device require access to a single SDRAM unit. A common example is a computer that utilizes a keyboard interface controller, a mouse controller, serial and parallel port controllers, a floppy disk controller, and a hard drive disk controller. Conventional technology for sharing a single SDRAM generally involves assigning two processors or controllers as masters of the single SDRAM. Unfortunately, SDRAM units are very hard to manage with two masters. Other conventional technology propose employing additional circuitry or logic in the form of arbiters and switches to allow more than one processor or controller to access a single SDRAM, as well as assigning higher status to one processor or controller over another. This, however, complicates the system and leads to possible wasted cycles and complicates the timing of when the SDRAM can be accessed. Still other conventional technology requires a time-division scheme of accessing a single SDRAM or caching portions of memory for use by the multiple processors or controllers.